/*const canvas = document.getElementById("c")
const ctx = canvas.getContext("2d")*/
console.log("welcome to tinyGameEngineJs")
var Tiny = {}

function Sprite(url)
{
    this.texture = null
    this.flip_h = false
    this.flip_v = false
    let sprite = PIXI.Sprite.from(url);
    return sprite
}

function Button(text)
{
    this.text = ""
    // 创建按钮容器  
    const button = new PIXI.Container();  
  
    // 创建按钮背景（使用Graphics）  
    const buttonGraphics = new PIXI.Graphics();  
    buttonGraphics.beginFill(0xffffff); // 白色背景  
    buttonGraphics.drawRect(0, 0, 200, 50); // 矩形按钮  
    buttonGraphics.endFill();  
    button.addChild(buttonGraphics);  
  
    // 创建按钮文本  
    const buttonText = new PIXI.Text(text, {  
        fontFamily: 'Arial',  
        fontSize: 24,  
        fill: 0x000000, // 黑色文本  
        align: 'center',  
    });  
    buttonText.x = buttonGraphics.width / 2;  
    buttonText.y = buttonGraphics.height / 2;  
    buttonText.anchor.set(0.5); // 设置锚点为文本的中心  
    button.addChild(buttonText);  
  
    // 添加事件监听器  
    button.interactive = true; // 使容器可交互  
    button.buttonMode = true; // 使容器看起来像按钮（添加鼠标悬停效果）  
    button.on('pointerover', () => {  
        // 你可以在这里添加鼠标悬停在按钮上时的逻辑，比如改变颜色  
        buttonGraphics.clear();  
        buttonGraphics.beginFill(0xff0000); // 红色背景  
        buttonGraphics.drawRect(0, 0, 200, 50);  
        buttonGraphics.endFill();  
    });  
  
    button.on('pointerout', () => {  
              // 你可以在这里添加鼠标离开按钮时的逻辑，比如恢复颜色  
              buttonGraphics.clear();  
              buttonGraphics.beginFill(0xffffff); // 恢复白色背景  
              buttonGraphics.drawRect(0, 0, 200, 50);  
              buttonGraphics.endFill();  
          });  
    return button
}

function Label(str)
{
    this.text = ""
    this.position = ""
    const text = new PIXI.Text(str, {  
        fontFamily: 'Arial',  
        fontSize: 48,  
        fill: 0xffffff, // 白色  
        align: 'center',  
    }); 
    return text
}

function AudioStreamPlayer(path)
{
    this.stream = ""
    // 创建一个AudioContext实例  
const audioContext = new (window.AudioContext || window.webkitAudioContext)();  
  
// 创建一个AudioBufferSourceNode并加载音频文件  
fetch(path)  
  .then(response => response.arrayBuffer())  
  .then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer))  
  .then(audioBuffer => {  
    // 创建一个AudioBufferSourceNode并设置其buffer属性为解码后的音频数据  
    const source = audioContext.createBufferSource();  
    source.buffer = audioBuffer;  
      
    // 连接AudioBufferSourceNode到AudioContext的目的地（扬声器）  
    source.connect(audioContext.destination);  
    // 开始播放音频，参数是开始播放的时间（以秒为单位），默认为0表示立即播放  
  })  
  .catch(error => {  
    console.error('Error decoding audio data:', error);  
  });
  this.play = function()
  {
    source.start()
  }
}

function load()
{
    
}